// 引入axios封装
import axios from "axios";
// import qs from 'qs';

// 创建axios实例
const spring = axios.create({
    baseURL:'/spring',  //url=baseUrl+requestUrl
    timeout:5000,   //5s超时
    responseType:'json',
    headers:{
        'Content-Type': 'application/json;charset=UTF-8',
        "Access-Control-Allow-Headers":"*",
        'Access-Control-Allow-Origin':"*"
    }
})
// 请求拦截器 一般写法模式
spring.interceptors.request.use(
    // 在发送请求之前做些什么
    (response)=>{
        if (response.url !== '/login' || response.url !== '/register'){
            let token = sessionStorage.getItem('Authorization')
            if(token && token !== ''){
                response.headers["Authorization"] = token
            }
        }
        return response
    },
    // 对请求错误做些什么
    (error) => {
        $message.destroyAll()
        $message.error(error.message)
        return Promise.reject(error)
    }
)
// 响应拦截器
spring.interceptors.response.use(
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    (response) => {
        let token = response.headers['Authorization']
        if(token && token !== ''){
            sessionStorage.setItem('Authorization','Bearer\xa0'+token)
        }
        return response.data
    },
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    (error) => {
        return Promise.reject(error)
    }
)
// 导出request
export default spring
